package pers.chy.chyappointmentplatform.Mapper.HisMapper;

import org.apache.ibatis.annotations.Param;
import pers.chy.chyappointmentplatform.Model.Yjyy_PdjhDTO;

import java.util.List;
import java.util.Map;

public interface Yjyy_PdjhMapper {

    /**
     * 插入排队信息
     * @param yjyy_pdjhDTO：排队信息实体
     * @return
     */
    public int  insert(Yjyy_PdjhDTO yjyy_pdjhDTO);

    /**
     * 更新排队信息
     * @param yjyy_pdjhDTO
     * @return
     */
    public int updateById(Yjyy_PdjhDTO yjyy_pdjhDTO);

    /**
     * 查询排队信息（用于取号）
     * @return
     */
    public List<Yjyy_PdjhDTO> selectForBeforeQh(@Param("brid")long brid, @Param("qhrq") String qhrq);

    /**
     * 查询今日最大的排队号码 (同时也是今日最大的主键ID)
     * @return
     */
    public Yjyy_PdjhDTO selectMaxRecordToday(@Param("dlxh")long dlxh);

    /**
     * 查询最大的主键ID
     * @return
     */
    public Long selectMaxID();

    /**
     * 根据条件查询（返回指定行数的记录）
     * @return
     */
    public List<Yjyy_PdjhDTO> selectByConditionAndRownum(Map condition);


    /**
     * 查询下一个叫号的病人信息
     * @param dlxh
     * @return
     */
    public Yjyy_PdjhDTO selectCallNext(@Param("dlxh")long dlxh);


    /**
     * 叫号（乐观锁）
     * @param yjyy_pdjhDTO
     * @return
     */
    public int updateForCallNext(Yjyy_PdjhDTO yjyy_pdjhDTO);


    /**
     * 过号
     *  【LED】更新此窗口的其他病人为'过号'状态
     * @param yjyy_pdjhDTO
     * @return
     */
    public int updateForCallPass(Yjyy_PdjhDTO yjyy_pdjhDTO);

    /**
     * 重叫
     * @param yjyy_pdjhDTO
     * @return
     */
    public int updateForReCall(Yjyy_PdjhDTO yjyy_pdjhDTO);


    /**
     * 查询报表信息
     * @param params
     * @return
     */
    public List<Yjyy_PdjhDTO> selectForStatistic(Map params);

    /**
     * 查询报表信息（分页查询）
     * @param params
     * @return
     */
    public List<Yjyy_PdjhDTO> selectForStatistic_Page(Map params);
}
